Queues are utilized to manage network traffic, such as transmission control protocol (TCP) packet and HTTP request communications. When server utilization is high and the communications would otherwise be dropped, queues can maintain the network communications for servicing at some later time.
A technique often employed to manage queues is random early drop (RED) which includes weighted RED, robust RED, and adaptive RED, for example. RED techniques generally provide for random removal of queue contents upon reaching a threshold queue utilization level below full queue utilization and then insertion of the current communication at the end of the queue. Generally, RED techniques implement a more balanced policy than dropping all incoming current communications upon full utilization of the queue, which can penalize clients disproportionally, including those clients sending relatively recent communications. Additionally, by dropping communications before the queue becomes full, RED techniques enable clients to become aware of the congestion and initiate steps to reduce transmission of communications, thereby potentially mitigating communication loss.
RED techniques are relatively effective for managing queues of TCP packets because TCP packets are automatically retransmitted when dropped, include a relatively small amount of data, and contain data that does not include references to other content and which would result in further communications. Additionally, RED techniques mitigate global TCP synchronization issues whereby several clients increase and decrease the rate of TCP packet retransmission at the same time, in response to packet loss, resulting in further congestion and packet loss.
However, RED techniques are relatively ineffective for managing queues of HTTP requests because HTTP requests are not automatically retransmitted, HTTP request loss is permanent, requiring manual retransmission by a user of the client computing device, and global synchronization is not a concern. Additionally, HTTP requests can reference content representing a substantial amount of data (e.g. an entire Web page). Further, HTTP requests for content containing references to other content (e.g. a hypertext markup language (HTML) document referencing embedded media) are not identified or differentiated by RED techniques, and randomly dropping such requests can unnecessarily multiply request and data loss.